본문으로 건너뛰기

Part 1: 네트워크 통신 정책

항목내용
문서명Part 1: 네트워크 통신 정책 (Network Communication Policy)
제품명DTA Wide Sleep Management Platform
작성일2026-02-10
적용범위Part 1 (모바일 앱)

1. TLS 정책

1.1 TLS 버전 및 암호 스위트

항목릴리즈 빌드디버그 빌드
최소 TLS 버전iOS 기본 ATS 정책 (TLS 1.2+)iOS 기본 ATS 정책
암호 스위트iOS 시스템 기본값iOS 시스템 기본값
Perfect Forward Secrecy✅ iOS ATS 기본 요구사항✅ iOS ATS 기본 요구사항

참고:

  • iOS 18.0+ 최소 지원이므로 TLS 1.3이 기본 협상됨
  • 별도 Info.plist NSAppTransportSecurity 설정 없이 iOS 기본 ATS 정책 사용

2. 앱 ↔ API 통신 흐름


3. 오류 처리 및 사용자 알림

3.1 네트워크 오류 유형

오류 유형HTTP 상태사용자 메시지개발자 로그
연결 실패-"서버에 연결할 수 없습니다. 인터넷 연결을 확인하세요."Connection timeout
인증 오류401"로그인이 만료되었습니다. 다시 로그인하세요."Unauthorized
권한 오류403"접근 권한이 없습니다."Forbidden
서버 오류500"일시적인 오류가 발생했습니다. 잠시 후 다시 시도하세요."Internal server error

3.2 오류 처리 플로우


4. 외부 서비스 통신

4.1 Firebase Cloud Messaging (FCM)

항목설정
프로토콜HTTPS (TLS 1.3)
데이터 전송디바이스 토큰만 (민감 정보 제외)
페이로드 암호화✅ End-to-End (앱 레벨 AES-256)

4.2 Firebase Crashlytics (크래시 모니터링)

항목설정
프로토콜HTTPS (Google 관리)
데이터 전송크래시 리포트, 익명화된 디바이스 정보
Firebase Analytics프로덕션 비활성화 (IS_ANALYTICS_ENABLED=false)

5. 응답 무결성 및 진위성 검증

5.1 현재 iOS 응답 검증 레이어 현황

검증 레이어참조 파일비고
TLS 전송 암호화Ext+URLSessionConfiguration.swiftiOS ATS 기본 정책
HTTP 상태코드 검증LiveSleepQDENetworkManager+UrlSession+Run.swift2xx/4xx/5xx 분기 처리
Swift Decodable 타입 검증NetworkSerialization.swiftJSON 구조·타입만 검증
응답 본문 HMAC/서명 검증❌ 미구현-
응답 헤더(Content-Type 등) 검증❌ 미구현-

5.2 현재 응답 검증 흐름


증빙 및 참조(Artifacts)

  1. URLSession 설정 코드 - Ext+URLSessionConfiguration.swift (캐시 정책, 타임아웃)
  2. ATS 설정 - iOS 기본 ATS 사용
  3. TLS 설정 검증 - [TODO: SSL Labs 스캔 실행 필요]
  4. 토큰 갱신 코드 - +UrlSession+Run.swift (401 자동 갱신, exponential backoff)
  5. 오류 처리 코드 - 네트워크 오류 핸들링
  6. Rate Limiting 구현 - 서버측 Redis 기반 (사용자당 100 req/min)
  7. 통신 플로우 다이어그램 - 본 문서 Section 2
  8. Firebase Crashlytics 설정 - GoogleService-Info-prod.plist
  9. Android Network Security Config - [TODO: Android 구현 예정]
규정요구사항구현증거
BSI TR-03161 Part 1안전한 통신 채널TLS (iOS ATS 기본), Certificate Pinning [TODO: 미구현]URLSession 설정 코드
GDPR Article 32전송 암호화TLS (iOS ATS 기본)본 문서
OWASP MASVS-NETWORK네트워크 보안TLS (iOS ATS), Certificate Pinning [TODO: 미구현][TODO: MobSF 실행 필요]